/**
 * @author: li_jian
 * @version: 1.0
 * @date: 2020/7/5 21:24
 * @description： @link{https://www.nowcoder.com/practice/abc3fe2ce8e146608e868a70efebf62e?tpId=13&&tqId=11154&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking}
 */
public class JZ1_二维数组中的查找 {

    public boolean Find(int target, int [][] array) {
        // 如果当前数组不存在或者为空就返回false
        if (array==null || array.length ==0 || array[0].length ==0)
            return false;
        //获取行和列
        int rows = array.length,cols = array[0].length;
        //从右上角开始遍历
        int r =0,c = cols-1;
        while (r<=rows-1 && c>=0){
            //如果找到目标数字就返回true
            if (target==array[r][c])
                return true;
            else if (array[r][c]>target)//如果大于目标数，就向左移一位
                c--;
            else//如果小于目标数就想下移一位
                r++;
        }
        return false;
    }
}
